{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from math import ceil\n",
    "from sklearn.metrics import accuracy_score, log_loss\n",
    "import torch\n",
    "from torch.utils.data import DataLoader\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "import sys\n",
    "sys.path.append('..')\n",
    "from utils.input_pipeline import get_image_folders\n",
    "from utils.diagnostic import top_k_accuracy, count_params,\\\n",
    "    entropy, model_calibration, predict\n",
    "\n",
    "torch.cuda.is_available()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from get_squeezenet import get_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "_, val_folder = get_image_folders()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "model, _, _ = get_model()\n",
    "\n",
    "# load pretrained quantized model\n",
    "model.load_state_dict(torch.load('model_ternary_quantization.pytorch_state'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "827784"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# number of params in the model\n",
    "count_params(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Show quantized kernel tensors (there are 24 such kernels overall)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# all quantized kernels    \n",
    "all_kernels = [\n",
    "    (n, p.data) for n, p in model.named_parameters()\n",
    "    if ('weight' in n and not 'bn' in n and not 'features.1.' in n \n",
    "        and not 'classifier' in n and not 'features.0.' in n)\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n6JlzabaZcWm2mXFp/DrRQU+yC/Au4EXAocArkxw63aokjZI5l2abGZdmmxmXJqMTHXTgMGBrVd1Y\nVd8HzgGOnXJNkkbLnEuzzYxLs82MSxPQlVHc9wduHnp9C/Az8xdKchJwUnv57STXrWDbewHfXE9x\nOW09a6/auuudsJHUO8E27l375rQV1fuUsVeyfsvmfA0Z79vvH/TvdxD693cUetTOQ22zVM0zkXFY\ncc5H/vOb0O9gb37vhqz0/0zX9KqtZyTnfl5/UK9+/+jf56Xete8oP693pYO+IlV1OnD6atZJsqWq\nNo+ppJGz3vGy3m5bbcb72D7WPBnW3F0ryXlf26KPdfexZrDuLvPzevdY73iNut6unOK+HThw6PUB\nbZqk2WHOpdlmxqXZZsalCehKB/2LwCFJDk6yG3AccP6Ua5I0WuZcmm1mXJptZlyagE6c4l5V9yd5\nHfBpYBfgjKq6ZkSbX9UpNh1gveNlvVMyppz3sX2seTKsecJGnPG+tkUf6+5jzWDdE+fn9Yew3vHa\n0PWmqka5PUmSJEmStAZdOcVdkiRJkqQNzQ66JEmSJEkdMHMd9CQvT3JNkh8kWXS4+yRHJ7kuydYk\nJ0+yxnl17JnkoiTXt69PWGS5bUmuSnJFki1TqHPJ9srAO9r8Lyf5qUnXOK+e5eo9IsndrT2vSPKW\nadTZajkjyc4kVy8yv1NtO019y3erpRcZbzX0Kuetpt5kvdVj3hdgtsevj/mG/mW81WTOl9G3zPcl\n733LeZ/yPdFcV9VMPYCfBJ4GfBbYvMgyuwA3AD8G7AZcCRw6pXr/B3Bye34ycNoiy20D9ppSjcu2\nF3AMcCEQ4HDgsin+Dqyk3iOAT0yrxnm1PB/4KeDqReZ3pm2n/ehbvls9nc/4Stuta7+Lfct6q8e8\nL/y+zfZ4a+1dvldRd6cy3moy58u3Ua8y34e89y3nfcv3JHM9c0fQq+raqrpumcUOA7ZW1Y1V9X3g\nHODY8Ve3oGOBs9rzs4CXTqmOpaykvY4Fzq6BS4HHJ9l30oU2Xfr5LquqPgfcscQiXWrbqephvqEf\nGYf+5Ry697NelnlfmNkeuz7mG7r3M18Rc768Hma+D3nvW8679PNd1iRzPXMd9BXaH7h56PUtbdo0\n7FNVO9rzbwD7LLJcARcnuTzJSZMp7YdW0l5datOV1vKz7RSUC5M8fTKlrUmX2rYPutZefcg49C/n\n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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f6113e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, axes = plt.subplots(nrows=6, ncols=4, figsize=(14, 10))\n",
    "axes = axes.flatten()\n",
    "for i, (name, kernel) in enumerate(all_kernels):\n",
    "    axes[i].hist(kernel.cpu().numpy().reshape(-1));\n",
    "    axes[i].set_title(name[9:-7]);\n",
    "\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# sparcity distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sparcity = []\n",
    "for n, p in all_kernels:\n",
    "    sparcity.append(p.eq(0.0).float().mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nUoP+F/4YjlGFNJhgAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f6351e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(sparcity);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.66487083584070206"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(sparcity)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# scaling factors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "upper_scaling_factor = []\n",
    "lower_scaling_factor = []\n",
    "for n, p in all_kernels:\n",
    "    upper_scaling_factor.append(p.max())\n",
    "    lower_scaling_factor.append(p.min())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f642afd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(upper_scaling_factor);\n",
    "plt.hist(lower_scaling_factor);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Error analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### get all predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "val_iterator_no_shuffle = DataLoader(\n",
    "    val_folder, batch_size=64, shuffle=False\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 157/157 [00:10<00:00, 15.60it/s]\n"
     ]
    }
   ],
   "source": [
    "val_predictions, val_true_targets = predict(model, val_iterator_no_shuffle)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### logloss and accuracies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.8442614205883117"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_loss(val_true_targets, val_predictions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.35570000000000002"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "accuracy_score(val_true_targets, val_predictions.argmax(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.47239999999999999, 0.54449999999999998, 0.59209999999999996, 0.62770000000000004, 0.73429999999999995]\n"
     ]
    }
   ],
   "source": [
    "print(top_k_accuracy(val_true_targets, val_predictions, k=(2, 3, 4, 5, 10)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### number of misclassified images (there are overall 10000 images in the val dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6443"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hits = val_predictions.argmax(1) == val_true_targets\n",
    "(~hits).sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### entropy of predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEKCAYAAADpfBXhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHvRJREFUeJzt3Xt0VeW57/HvjwDFW2mVuKsgG9wbpYgQNKBCixeKIiho\nDxyvCN4oHUV7GWqxPbXqsbdRT3UXrZFSRLttod6phxZFpcBRS7BGKgiKiiXWLRQVb0UBn/PHmmQv\nQi6TsJKVTH6fMTJYc853zffJCuPJm2fN+SxFBGZmli3tih2AmZkVnpO7mVkGObmbmWWQk7uZWQY5\nuZuZZZCTu5lZBjm5m5llkJO7mVkGpUrukkZIWi1pjaSpdRy/UlJV8vW8pG2S9i98uGZmloYau0NV\nUgnwIjAcqAYqgXMiYmU9408HvhkRJzV03i5dukSPHj2aErOZ2R7rmWee+UdElDY2rn2Kcw0C1kTE\nKwCSZgNjgDqTO3AO8NvGTtqjRw+WLVuWYnozM9tO0mtpxqUpy3QF1uVtVyf76pp0b2AEcF89xydJ\nWiZp2YYNG9LEZ2ZmTVDoN1RPB/5fRLxV18GImB4R5RFRXlra6F8VZmbWRGmS++vAIXnb3ZJ9dTmb\nFCUZMzNrXmlq7pVAL0k9ySX1s4Fzaw+S1Bk4Hji/oBGaGQBbtmyhurqazZs3FzsUawGdOnWiW7du\ndOjQoUnPbzS5R8RWSVOA+UAJMDMiVkianByvSIaeCTwSER80KRIza1B1dTX77bcfPXr0QFKxw7Fm\nFBFs3LiR6upqevbs2aRzpFm5ExHzgHm19lXU2p4FzGpSFGbWqM2bNzux7yEkccABB7A7F574DlWz\nNsSJfc+xuz9rJ3czswxKVZYxs9bn4lmVBT3fryYOLOj5Cm3WrFmcfPLJHHzwwc0+18SJEznttNMY\nO3Ysl1xyCd/61rfo06dPnWMXLlxIx44dGTx4MAAVFRXsvffeXHDBBc0eZ0PaZHJP+5+6tf9nNdtT\nbN26lfbt29e7ncasWbPo27dvk5N7U+YEmDFjRoPHFy5cyL777luT3CdPntyk+ArNZRkzS+2uu+6i\nX79+9O/fn/HjxwOwdu1aTjrpJPr168ewYcP429/+BuRWv5MnT+aYY47hqquu4tprr2X8+PEMGTKE\n8ePHs23bNq688koGDhxIv379uP3222vm+clPfsKRRx5J//79mTp1Kvfeey/Lli3jvPPOo6ysjH/+\n8587xHXCCSfw9a9/nbKyMvr27cvSpUsBUs8ZEUyZMoXDDz+cL33pS6xfv36Hc29vlfLHP/6Ro446\niv79+zNs2DDWrl1LRUUFN910E2VlZSxevJhrr72WG2+8EYCqqiqOPfZY+vXrx5lnnsnbb79dc85v\nf/vbDBo0iMMOO4zFixcX/GfVJlfuZtbyVqxYwQ033MCTTz5Jly5deOut3I3ol112GRMmTGDChAnM\nnDmTyy+/nAcffBDIXb755JNPUlJSwrXXXsvKlStZsmQJe+21F9OnT6dz585UVlby0UcfMWTIEE4+\n+WRWrVrFQw89xJ///Gf23ntv3nrrLfbff39uueUWbrzxRsrLy+uM78MPP6SqqopFixZx0UUX8fzz\nzwOkmvPZZ59l9erVrFy5kjfffJM+ffpw0UUX7XD+DRs2cOmll7Jo0SJ69uxZE9fkyZPZd999ueKK\nKwB47LHHap5zwQUXMG3aNI4//niuueYarrvuOm6++WYg95fE0qVLmTdvHtdddx0LFiwo6M/Lyd3M\nUnn88ccZN24cXbp0AWD//XNdvZ966inuv/9+AMaPH89VV11V85xx48ZRUlJSsz169Gj22msvAB55\n5BGWL1/OvffeC8CmTZt46aWXWLBgARdeeCF77733DvM05pxzzgFg6NChvPvuu7zzzjup51y0aBHn\nnHMOJSUlHHzwwZx00s5NbZ9++mmGDh1ac915Y3Ft2rSJd955h+OPPx6ACRMmMG7cuJrjX/7ylwE4\n+uijWbt2barvcVc4uZtZs9lnn33q3Y4Ipk2bximnnLLDmPnz5zdprtqXDm7fTjPnvHk73MbTIj71\nqU8BUFJSwtatWwt+ftfczSyVk046iXvuuYeNGzcC1JRlBg8ezOzZswG4++67+eIXv5jqfKeccgq3\n3XYbW7ZsAeDFF1/kgw8+YPjw4dxxxx18+OGHO8yz33778d5779V7vjlz5gCwZMkSOnfuTOfOnVPP\nOXToUObMmcO2bdt44403eOKJJ3Z67rHHHsuiRYt49dVXU8XVuXNnPvvZz9bU03/961/XrOJbglfu\nZm1US18NdsQRR/Dd736X448/npKSEgYMGMCsWbOYNm0aF154IT/96U8pLS3ljjvuSHW+Sy65hLVr\n13LUUUcREZSWlvLggw8yYsQIqqqqKC8vp2PHjowcOZIf/vCHNW/Q7rXXXjz11FM1pZbtOnXqxIAB\nA9iyZQszZ87cpTnPPPNMHn/8cfr06UP37t057rjjdnpuaWkp06dP58tf/jKffPIJBx54II8++iin\nn346Y8eO5aGHHmLatGk7POfOO+9k8uTJfPjhhxx66KGpX5tCaPSTmJpLeXl5NPXDOnwppO2JXnjh\nBT7/+c8XO4xW6YQTTmjwzda2qq6fuaRnIqLRb9RlGTOzDHJZxszavIULFxY7hFbHK3czswxycjcz\nyyAndzOzDHJyNzPLIL+hatZWPfGjwp7vxKsLcpq5c+eycuVKpk6dukvPK+TljMuWLeOuu+7i5z//\nOR999BGjRo3iH//4B1dffTWPPvpogy1861NVVcXf//53Ro4cCTT9+2wpTu5mVlCjR49m9OjRRY2h\nvLy85pfEs88+C+SSM8BZZ53VpHNWVVWxbNmymuTeGr7PhrgsY2aprV27lt69ezNx4kQOO+wwzjvv\nPBYsWMCQIUPo1asXS5cuZdasWUyZMgWAe+65h759+9K/f3+GDh0KwLZt27jiiivo27cv/fr12+mu\nToCvfvWrlJeXc8QRR/D973+/Zv/UqVPp06cP/fr1q+nCWNccCxcu5LTTTmP9+vWcf/75VFZWUlZW\nxssvv9xgC1+ApUuXctxxxzFgwAAGDx7M6tWr+fjjj7nmmmuYM2cOZWVlzJkzZ4fvs6G2x5dffjmD\nBw/m0EMPrWlY1hK8cjezXbJmzRruueceZs6cycCBA/nNb37DkiVLmDt3Lj/84Q8544wzasZef/31\nzJ8/n65du9Z0aZw+fTpr166lqqqK9u3b1/RoyfeDH/yA/fffn23btjFs2DCWL19O165deeCBB1i1\nahWSas5X1xzbHXjggcyYMYMbb7yRhx9+eIdjdbXwBejduzeLFy+mffv2LFiwgO985zvcd999XH/9\n9SxbtoxbbrkFyH14yHYNtT1+4403WLJkCatWrWL06NGMHTt2N38C6Xjlbma7pGfPnhx55JG0a9eO\nI444gmHDhiGJI488cqfWtUOGDGHixIn88pe/ZNu2bQAsWLCAr3zlKzWfilRX69zf/e53HHXUUQwY\nMIAVK1awcuVKOnfuTKdOnbj44ou5//77a1oC1zVHGvW18N20aRPjxo2jb9++fPOb32TFihWNnuup\np57i3HPPBXJtj5csWVJz7IwzzqBdu3b06dOHN998M3V8uytVcpc0QtJqSWsk1fnugaQTJFVJWiHp\nT4UN08xai+2tagHatWtXs92uXbudWtdWVFRwww03sG7dOo4++uiajpINefXVV7nxxht57LHHWL58\nOaNGjWLz5s20b9+epUuXMnbsWB5++GFGjBjR5Dka8r3vfY8TTzyR559/nt///vds3rx5t86X/3q1\nZC+vRpO7pBLgVuBUoA9wjqQ+tcZ8BvgFMDoijgDG7XQiM9vjvPzyyxxzzDFcf/31lJaWsm7dOoYP\nH87tt99e84ugdlnm3XffZZ999qFz5868+eab/OEPfwDg/fffZ9OmTYwcOZKbbrqJ5557rt450qiv\nhe+mTZvo2rUrsGPppaGWw01te9yc0tTcBwFrIuIVAEmzgTHAyrwx5wL3R8TfACJi/U5nMbPCKtCl\ni83pyiuv5KWXXiIiGDZsGP3796dv3768+OKL9OvXjw4dOnDppZfWvDEJ0L9/fwYMGEDv3r055JBD\nGDJkCADvvfceY8aMYfPmzUQEP/vZz+qd409/arx4UF8L36uuuooJEyZwww03MGrUqJrxJ554Ij/+\n8Y8pKyvj6qt3fO2b2va4OTXa8lfSWGBERFySbI8HjomIKXljbgY6AEcA+wH/ERF31XGuScAkgO7d\nux/92muvNSlot/y1PZFb/u55WkPL3/bA0cAo4BTge5IOqz0oIqZHRHlElJeWlhZoajMzqy1NWeZ1\n4JC87W7JvnzVwMaI+AD4QNIioD/wYkGiNDOzXZJm5V4J9JLUU1JH4Gxgbq0xDwFfkNRe0t7AMcAL\nhQ3VzIr1yWnW8nb3Z93oyj0itkqaAswHSoCZEbFC0uTkeEVEvCDpj8By4BNgRkQ8v1uRmdkOOnXq\nxMaNGznggAOQVOxwrBlFBBs3bqRTp05NPkeqO1QjYh4wr9a+ilrbPwV+2uRIzKxB3bp1o7q6mg0b\nNhQ7FGsBnTp1olu3bk1+vtsPmLURHTp0qLmb0qwxbj9gZpZBTu5mZhnk5G5mlkFO7mZmGeTkbmaW\nQU7uZmYZ5ORuZpZBTu5mZhnk5G5mlkFO7mZmGeTkbmaWQU7uZmYZ5ORuZpZBTu5mZhnk5G5mlkFO\n7mZmGeTkbmaWQU7uZmYZ5ORuZpZBTu5mZhmUKrlLGiFptaQ1kqbWcfwESZskVSVf1xQ+VDMzS6t9\nYwMklQC3AsOBaqBS0tyIWFlr6OKIOK0ZYjQzs12UZuU+CFgTEa9ExMfAbGBM84ZlZma7I01y7wqs\ny9uuTvbVNljSckl/kHREQaIzM7MmabQsk9JfgO4R8b6kkcCDQK/agyRNAiYBdO/evUBTm5lZbWlW\n7q8Dh+Rtd0v21YiIdyPi/eTxPKCDpC61TxQR0yOiPCLKS0tLdyNsMzNrSJrkXgn0ktRTUkfgbGBu\n/gBJn5Ok5PGg5LwbCx2smZml02hZJiK2SpoCzAdKgJkRsULS5OR4BTAW+KqkrcA/gbMjIpoxbjMz\na0CqmntSaplXa19F3uNbgFsKG5qZmTWV71A1M8sgJ3czswxycjczyyAndzOzDHJyNzPLICd3M7MM\ncnI3M8sgJ3czswxycjczyyAndzOzDHJyNzPLICd3M7MMcnI3M8sgJ3czswxycjczyyAndzOzDHJy\nNzPLICd3M7MMcnI3M8sgJ3czswxycjczyyAndzOzDEqV3CWNkLRa0hpJUxsYN1DSVkljCxeimZnt\nqkaTu6QS4FbgVKAPcI6kPvWM+wnwSKGDNDOzXZNm5T4IWBMRr0TEx8BsYEwd4y4D7gPWFzA+MzNr\ngjTJvSuwLm+7OtlXQ1JX4EzgtsKFZmZmTVWoN1RvBr4dEZ80NEjSJEnLJC3bsGFDgaY2M7Pa2qcY\n8zpwSN52t2RfvnJgtiSALsBISVsj4sH8QRExHZgOUF5eHk0N2szMGpYmuVcCvST1JJfUzwbOzR8Q\nET23P5Y0C3i4dmI3M7OW02hyj4itkqYA84ESYGZErJA0OTle0cwxmpnZLkqzcici5gHzau2rM6lH\nxMTdD8vMzHaH71A1M8sgJ3czswxycjczyyAndzOzDHJyNzPLICd3M7MMcnI3M8sgJ3czswxycjcz\nyyAndzOzDHJyNzPLICd3M7MMcnI3M8sgJ3czswxycjczyyAndzOzDHJyNzPLICd3M7MMcnI3M8sg\nJ3czswxycjczyyAndzOzDEqV3CWNkLRa0hpJU+s4PkbScklVkpZJ+kLhQzUzs7TaNzZAUglwKzAc\nqAYqJc2NiJV5wx4D5kZESOoH/A7o3RwBm5lZ49Ks3AcBayLilYj4GJgNjMkfEBHvR0Qkm/sAgZmZ\nFU2a5N4VWJe3XZ3s24GkMyWtAv4vcFFhwjMzs6ZotCyTVkQ8ADwgaSjwv4Ev1R4jaRIwCaB79+6F\nmrpeF8+qTDXuVxMHNnMkZmYtK83K/XXgkLztbsm+OkXEIuBQSV3qODY9Isojory0tHSXgzUzs3TS\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f62bfc88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(\n",
    "    entropy(val_predictions[hits]), bins=30, \n",
    "    normed=True, alpha=0.7, label='correct prediction'\n",
    ");\n",
    "plt.hist(\n",
    "    entropy(val_predictions[~hits]), bins=30, \n",
    "    normed=True, alpha=0.5, label='misclassification'\n",
    ");\n",
    "plt.legend();\n",
    "plt.xlabel('entropy of predictions');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### confidence of predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAEKCAYAAAAyx7/DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGw9JREFUeJzt3Xt0VdW59/HvQwADyBtFYkcFLdhXpIBJgOAFLHLxQsHi\nZcDxUIvgjeI5XlqPItpWkaMe+8qojmKPSCmiViuiKMjxUhARKGiIEhEQvNRUaRmCqBFFVOLz/rFW\ncgImZBH2hZn8PmNkuC9rr/nMvfGXmbnWmtvcHRERCUezbBcgIiL7RsEtIhIYBbeISGAU3CIigVFw\ni4gERsEtIhIYBbeISGAU3CIigVFwi4gEpnk6dtq+fXvv1KlTOnYtItIovfLKKx+6e36SbdMS3J06\ndaK0tDQduxYRaZTM7O9Jt9VUiYhIYBTcIiKBUXCLiAQmLXPctfn666/ZtGkTO3fuzFSTkiW5ubl0\n7NiRFi1aZLsUkUYpY8G9adMm2rZtS6dOnTCzTDUrGebubNu2jU2bNtG5c+dslyPSKGVsqmTnzp0c\ndthhCu1Gzsw47LDD9JeVSBpldI5bod006HMWSS8dnBQRCUzG5rj3dPGsVSnd3x/H9knp/lJt1qxZ\nnH766RxxxBFpb2vs2LGceeaZjBgxgksuuYSrr76abt261brtkiVLaNmyJX379gVg2rRptG7dmgsu\nuCDtdYpIw2QtuEOya9cumjdvXuf9JGbNmkWPHj0aHNwNaRNgxowZe31+yZIlHHzwwdXBPX78+AbV\nJ9KYJR1oZmoA2aSmSh544AEKCgooLCxk9OjRAJSXlzNo0CAKCgoYPHgw7733HhCNWsePH88JJ5zA\nhAkTmDRpEqNHj6Zfv36MHj2ayspKrr32Wvr06UNBQQH33ntvdTu/+c1vOO644ygsLGTixIk89thj\nlJaWcv7551NUVMQXX3yxW10DBgzgqquuoqioiB49elBSUgKQuE135/LLL+fYY4/l1FNPZcuWLbvt\nu2r5gWeffZZevXpRWFjI4MGDKS8vZ9q0adx5550UFRWxbNkyJk2axJQpUwAoKyvjxBNPpKCggHPO\nOYePP/64ep/XXXcdxx9/PF26dGHZsmXp+LhEpA5NZsS9bt06brnlFlasWEH79u356KOPALjiiisY\nM2YMY8aMYebMmVx55ZU8+eSTQHQK44oVK8jJyWHSpEmsX7+e5cuX06pVK6ZPn05eXh6rVq3iyy+/\npF+/fpx++uls2LCBefPm8fLLL9O6dWs++ugj2rVrx913382UKVMoLi6utb4dO3ZQVlbG0qVLueii\ni1i7di1AojZXr17Nxo0bWb9+PR988AHdunXjoosu2m3/W7du5dJLL2Xp0qV07ty5uq7x48dz8MEH\nc8011wDw/PPPV7/mggsuYOrUqZxyyinceOON3Hzzzdx1111A9BdASUkJTz/9NDfffDOLFi1K7Qcm\nInVqMsG9ePFiRo4cSfv27QFo164dACtXrmTu3LkAjB49mgkTJlS/ZuTIkeTk5FTfHz58OK1atQLg\nL3/5C2vWrOGxxx4DoKKigrfeeotFixZx4YUX0rp1693aqc+oUaMA6N+/P59++imffPJJ4jaXLl3K\nqFGjyMnJ4YgjjmDQoEHf2v9LL71E//79q8+trq+uiooKPvnkE0455RQAxowZw8iRI6ufP/fccwHo\n3bs35eXlifooIqnRZIK7Idq0aVPnfXdn6tSpnHHGGbtt89xzzzWorT1Poau6n6TNp59+ukFt7o+D\nDjoIgJycHHbt2pXx9kWasiYzxz1o0CDmzJnDtm3bAKqnSvr27csjjzwCwEMPPcQPf/jDRPs744wz\nuOeee/j6668BePPNN/n888857bTTuO+++9ixY8du7bRt25bt27fXub/Zs2cDsHz5cvLy8sjLy0vc\nZv/+/Zk9ezaVlZVs3ryZF1544VuvPfHEE1m6dCnvvvtuorry8vI49NBDq+evH3zwwerRt4hkV9ZG\n3Jk+fa979+788pe/5JRTTiEnJ4eePXsya9Yspk6dyoUXXsgdd9xBfn4+9913X6L9XXLJJZSXl9Or\nVy/cnfz8fJ588kmGDBlCWVkZxcXFtGzZkqFDh3LbbbdVH+xs1aoVK1eurJ7+qJKbm0vPnj35+uuv\nmTlz5j61ec4557B48WK6devGUUcdxUknnfSt1+bn5zN9+nTOPfdcvvnmGw4//HAWLlzIj3/8Y0aM\nGMG8efOYOnXqbq+5//77GT9+PDt27ODoo49O/N6ISHqZu6d8p8XFxb7nFym88cYb/OAHP0h5W43B\ngAED9nrgMkT6vKUxycTpgGb2irsnCoEmM1UiItJY6ODkAWDJkiXZLkFEAqIRt4hIYBTcIiKBUXCL\niARGwS0iEpjsHZx84b9Su7+B1+/3LubPn8/69euZOHHiPr0ulafzlZaW8sADD/C73/2OL7/8kmHD\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f6246c50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(\n",
    "    val_predictions[hits].max(1), bins=30, \n",
    "    normed=True, alpha=0.7, label='correct prediction'\n",
    ");\n",
    "plt.hist(\n",
    "    val_predictions[~hits].max(1), bins=30, \n",
    "    normed=True, alpha=0.5, label='misclassification'\n",
    ");\n",
    "plt.legend();\n",
    "plt.xlabel('confidence of predictions');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### difference between biggest and second biggest probability"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAEKCAYAAAAyx7/DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGQ9JREFUeJzt3Xt01OW97/H3lwQaUHYqEveqIAc8R6Uh5oLBC1Hk4oUN\nFtEFx20tgjdKz/Ky260I7aoim6pdsqq72CNSRNStWwqiUpeKolJIRUPQSAHxVnM0rVsQFS+ISvzu\nP2bIAUkyv8D8ZuZJPq+1ssxkfvP8vk8mfubhmef3jLk7IiISjk7ZLkBERNpGwS0iEhgFt4hIYBTc\nIiKBUXCLiARGwS0iEhgFt4hIYBTcIiKBUXCLiAQmP45Ge/bs6X379o2jaRGRdmndunUfuHtRlGNj\nCe6+fftSW1sbR9MiIu2Smf2/qMdqqkREJDAKbhGRwCi4RUQCE8sct4i0zddff01DQwM7d+7MdikS\ns4KCAnr37k3nzp33uw0Ft0gOaGhooHv37vTt2xczy3Y5EhN3Z9u2bTQ0NNCvX7/9bkdTJSI5YOfO\nnRx66KEK7XbOzDj00EMP+F9WCm6RHKHQ7hjS8TwruEVEAqM5bpEcdMnCtWlt765Jg9LaXrotXLiQ\nM844g8MPPzz2c02aNImzzjqLcePGcemll/Kzn/2M4uLiZo9duXIlXbp0YfDgwQDMnTuXbt26ceGF\nF8ZeZ2tyL7ifuynaccOmx1uHiESya9cu8vPzW7wdxcKFCykpKdnv4N6fcwLMnz+/1ftXrlzJwQcf\n3BTcU6ZM2a/60k1TJSICwL333ktpaSllZWVMmDABgPr6eoYPH05paSkjRozgnXfeARKj1ilTpnDC\nCScwdepUZsyYwYQJE6iqqmLChAk0NjZyzTXXMGjQIEpLS7nzzjubzvPrX/+aY489lrKyMqZNm8aS\nJUuora3lggsuoLy8nC+++GKvuoYOHcpVV11FeXk5JSUl1NTUAEQ+p7tz+eWXc8wxx3DaaaexZcuW\nvdrevT3Hk08+ycCBAykrK2PEiBHU19czd+5cbr31VsrLy1m9ejUzZsxg9uzZANTV1XHiiSdSWlrK\nOeecw0cffdTU5rXXXsvxxx/P0UcfzerVq9P+XOXeiFtEMm7jxo3MmjWL559/np49e/Lhhx8CcMUV\nVzBx4kQmTpzIggULuPLKK3nkkUeAxBLG559/nry8PGbMmMGmTZuorq6ma9euzJs3j8LCQtauXcuX\nX35JVVUVZ5xxBps3b+bRRx/lxRdfpFu3bnz44Yf06NGD22+/ndmzZ1NZWdlsfTt27KCuro5Vq1Zx\n8cUXs2HDBoBI53z55Zd57bXX2LRpE++//z7FxcVcfPHFe7W/detWLrvsMlatWkW/fv2a6poyZQoH\nH3wwV199NQDPPPNM02MuvPBC5syZw6mnnsp1113HDTfcwG233QYk/gVQU1PD448/zg033MCKFSvS\n+nwpuEWEZ599lvHjx9OzZ08AevToAcCaNWtYunQpABMmTGDq1KlNjxk/fjx5eXlNt8eMGUPXrl0B\neOqpp1i/fj1LliwBYPv27bzxxhusWLGCiy66iG7duu11nlTOP/98AIYMGcInn3zCxx9/HPmcq1at\n4vzzzycvL4/DDz+c4cOH79P+Cy+8wJAhQ5rWVqeqa/v27Xz88ceceuqpAEycOJHx48c33X/uuecC\ncNxxx1FfXx+pj22h4BaR/XLQQQe1eNvdmTNnDmeeeeZexyxfvny/zvXtJXS7b0c55+OPP75f5zwQ\n3/nOdwDIy8tj165daW9fc9wiwvDhw1m8eDHbtm0DaJoqGTx4MA8++CAA999/P6ecckqk9s4880zu\nuOMOvv76awBef/11Pv/8c04//XTuvvtuduzYsdd5unfvzqefftpie4sWLQKgurqawsJCCgsLI59z\nyJAhLFq0iMbGRt577z2ee+65fR574oknsmrVKt5+++1IdRUWFnLIIYc0zV/fd999TaPvTNCIWyQH\nZXr53oABA/jFL37BqaeeSl5eHhUVFSxcuJA5c+Zw0UUXccstt1BUVMTdd98dqb1LL72U+vp6Bg4c\niLtTVFTEI488wsiRI6mrq6OyspIuXbowatQobrzxxqY3O7t27cqaNWuapj92KygooKKigq+//poF\nCxa06ZznnHMOzz77LMXFxfTp04eTTjppn8cWFRUxb948zj33XL755hsOO+wwnn76aX7wgx8wbtw4\nHn30UebMmbPXY+655x6mTJnCjh07OPLIIyP/btLB3D3tjVZWVvp+f5CClgNKB/Tqq6/y/e9/P9tl\n5KShQ4e2+sZliJp7vs1snbtH6qSmSkREAqOpEhHJaStXrsx2CTlHI24RkcAouEVEAhMpuM3su2a2\nxMw2m9mrZrbv27IiIpIRUee4/x140t3HmVkXoFuMNYmISCtSBreZFQJDgEkA7v4V8FW8ZYl0cFGX\n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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f6846630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sorted_correct = np.sort(val_predictions[hits], 1)\n",
    "sorted_incorrect = np.sort(val_predictions[~hits], 1)\n",
    "\n",
    "plt.hist(\n",
    "    sorted_correct[:, -1] - sorted_correct[:, -2], bins=30, \n",
    "    normed=True, alpha=0.7, label='correct prediction'\n",
    ");\n",
    "plt.hist(\n",
    "    sorted_incorrect[:, -1] - sorted_incorrect[:, -2], bins=30, \n",
    "    normed=True, alpha=0.5, label='misclassification'\n",
    ");\n",
    "plt.legend();\n",
    "plt.xlabel('difference');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### probabilistic calibration of the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4FOX2wPHvSaWE3lsSSui9ikhRQcGrIiJIERCEgNeG\nXhCEn4peowiCgqKQ0BRDEVBB7lWKcBGlGURC7yQ06YSQhLR9f3/sIgFCWEI2u9k9n+fJQ3bmnZmT\nIdmzM+875xVjDEoppdSteDk7AKWUUq5NE4VSSqksaaJQSimVJU0USimlsqSJQimlVJY0USillMqS\nJgrlFkRkjIh8bfs+UEQui4i3Hdu1E5FjWayfKiJvZtZWRHaKSLscCF8pl+bj7ACUymnGmFggIIf2\nNSSLdXWufi8iY4BqxphncuK4SrkSvaJQLk9E9AONney5ilLqTmmiUC5JRI6IyAgRiQYSRMRHRMqL\nyGIROSMih0Xk5VtsGywi5mqCEZH+IrJbROJF5JCIDM5km1EictZ23N4Zls8WkfeyiLG9iHQERgFP\n2255bRORbiKy5Yb2r4nIklvsq7iIzBKREyJyQUS+ty1/VkR+vaGtEZFqGeL7QkT+KyIJwDAR+Stj\nwhCRLrbziIh4ichIETkoIudE5BsRKZ5ZTEpdpYlCubKewD+AooAF+AHYBlQAHgSGisjDduznNPAo\nUBjoD3wsIo0zrC8LlLTttx8QLiI17A3SGPMT8D6wwBgTYIxpACwFKotIrQxN+wBf3WI3c4ACQB2g\nNPCxvccHegFhQCFgEpAAPHDD+rm2718CngDaAuWBC8CUOziW8kCaKJQrm2yMOWqMSQKaAaWMMe8a\nY1KMMYeACKDH7XZijPmPMeagsVoLrABa39DsTWNMsm39f4DudxO4MSYZWAA8AyAidYBgYNmNbUWk\nHNAJGGKMuWCMSbXFYa8lxpjfjDEWY8wVYB7WJIuIFAIesS0DGAKMNsYcs8U4BnhKb++prGiiUK7s\naIbvg4DyInLx6hfW2z1lbrcTEekkIhtF5Lxtu0ewXkFcdcEYk5DhdQzWT9t360ugl4gI1quJb2xv\nzjeqBJw3xlzI5nGO3vB6LvCkiPgDTwJ/GGNibOuCgO8ynMPdQDp2nEflufRThHJlGUsbHwUOG2NC\n7mQHtjfLxUBfrJ+8U233/yVDs2IiUjBDsggEdtxFrNYFxmwUkRSsVy+9bF+ZOQoUF5GixpiLN6xL\nwHpL6urPU/Z2xzbG7BKRGKxXKRlvO1091gBjzG+3+XmU+pteUai8YjMQb+vgzi8i3iJSV0Sa3WY7\nP8AfOAOkiUgn4KFM2r0jIn4i0hprf8bCO4zvFBAsIjf+TX0FfAakGmN+vXkzMMacBH4EPheRYiLi\nKyJtbKu3AXVEpKGI5MN6q8gec4FXgDZc/7NMBcJEJAhAREqJSGc796k8lCYKlScYY9KxvoE3BA4D\nZ4HpQJHbbBcPvAx8g7XjthfWjuaM/rKtOwFEYu0r2HOHIV59Mz4nIn9kWD4HqAt8fZvt+wCpwB6s\nne9DbfHvA94FVgH7gUyTTSbmYe2wXm2MOZth+SSsP/8KEYkHNgIt7Nyn8lCiExcp5Tgikh/rG39j\nY8x+Z8ejVHboFYVSjvU88LsmCZWXOSxRiMhMETktIpl2CorVZBE5ICLRN4xrVyrPE5EjWPsJ/uXk\nUJS6K468opgNdMxifScgxPYVCnzhwFiUynXGmGBjTJAxZquzY1HqbjgsURhjfgHOZ9GkM/CV7SGo\njUBR24NHSimlXIgzn6OowPUPCh2zLTt5Y0MRCcV61UHBggWb1KxZM1cCVEqpvO50fDJn4pO5cnL/\nWWNMqezsI088cGeMCQfCAZo2bWqioqKcHJFSSrk2Ywwiwspdp1i3/wz/fqJezO23ypwzRz0dx1q6\n4KqKtmVKKaWyKS4xldcXbWPKmgMAdKhdhnc7172rfTozUSwF+tpGP90DxNmeUFVKKZUNP+34i/Yf\nr2XxH8dJTc+5Z+QcdutJROYB7YCSYp0+8m3AF8AYMxX4L9bibAeARKzln5VSSt2hM/HJjFm6k/9s\nP0ntcoWZ9Wwz6lbIsmjBHXFYojDG9LzNegO84KjjK6WUpzgZl8TqPacZ/nANQttUwdc7Z28W5YnO\nbKWUUtc7diGRn3efpt+9wdSvWJT1Ix+gWEE/hxxLE4VSSuUhFovh600xfPijtW5lp7plKV04n8OS\nBGiiUEqpPOPgmcuMXBzN70cu0KZ6Kd7vUpfShfM5/LiaKJRSKg9ISkmn29QNpFsMH3VrQNfGFbBO\nnuh4miiUUsqFHTpzmcolC5Lfz5uJ3RtQu3xhShdy/FVERlpmXCmlXNCV1HTGL99Dh49/4fs/rc8i\nt6tROteTBOgVhVJKuZyoI+d5fXE0h84k0K1JRR6oUcap8WiiUEopFzL55/18vGof5Yvk56sBzWlT\nPVt1/HKUJgqllHIBV4v41S5XmH4tgxn+cA0K+rvGW7RrRKGUUh7qYmIK7y7bRXCJgrz8YAjta5eh\nfW3n3mq6kXZmK6WUk/x3+0naT1zL0j9PYHKuhl+O0ysKpZTKZacvXeGtJTv5aedf1KtQhK8GtKB2\n+cLODuuWNFEopVQuO3UpmV/2n2Fkp5oMvK8yPjlcxC+naaJQSqlccPR8Ij/vPsWzrSpTr2IRNox8\nkCIFfJ0dll00USillAOlWwxfbTjC+OV78RLhkfrlKF0oX55JEqCJQimlHObA6XhGLN7OlpgLtK1e\nivefrOeUJ6vvliYKpZRygKSUdLpP24jFGCZ2b0CXRrlXxC+naaJQSqkcdOD0ZaqWshbx++TphtQq\nV5hShfydHdZdce2udqWUyiOupKbzwY+7eejjtX8X8WtTvVSeTxKgiUIppe7apkPn6DRpHdPWHqJ7\n00o8UNOxT1ZHRkYSHByMl5cXwcHBREZGOvR4eutJKaXuwier9vHJqv1UKp6fyIEtaFWtpEOPFxkZ\nSWhoKImJiQDExMQQGhoKQO/evR1yTDGu/Nx4Jpo2bWqioqKcHYZSysNdLeK3es8pfjtwjn89VJ0C\nfo7/7B0cHExMTMxNy4OCgjhy5MgttxORLcaYptk5pl5RKKXUHTifkMK/bUX8XmkfwgM1yzj8VlNG\nsbGxd7Q8J2gfhVJK2cEYw7LoE3SYuJYftp3Ay0kjXcuUyTwpBQYGOuyYekWhlFK3cerSFf7v+x2s\n3HWK+hWL8PXAFtQql/tF/C5evEhqaioiQsZugwIFChAWFuaw4+oVhVJK3caZ+GQ2HDzHqEdq8u3z\n9zolSRhjGDhwIHFxcYwZM4agoCBEhKCgIMLDwx3WkQ3ama2UUpmKPZfIyt2neO6+ygDEJaVSJL/z\n6jNNnTqV559/nvHjxzNs2LA73l47s5VSKoekWwyzfjvMRyv24uvlxWMNbEX8nJgkoqOjGTp0KJ06\ndeK1117L9eNrolBKKZt9p+J5fVE0fx69yAM1SxPWpa7Ti/glJCTw9NNPU7x4cWbPno2XV+73GGii\nUEoprEX8np62ARFhUo+GPN6gvEsU8XvppZfYu3cvq1atonTp0k6JQROFUsqj7T8VT7XSAeT38+bT\nno2pVa4QJQJcoz5TZGQks2bN4s033+SBBx5wWhw66kkp5ZGSUtJ5/7+7efiTX/huq7WI330hJV0m\nSezfv58hQ4bQunVr3nrrLafGolcUSimPs+HgOd74Npoj5xLp1SKQ9rVz78lqeyQnJ9OjRw/8/PyI\njIzEx8e5b9WaKJRSHmXiyn1M/nk/QSUKMHdQC+6t6tgiftkxYsQI/vjjD5YsWUKlSpWcHY4mCqWU\nZ7haxK9hpSIMal2Z1zrUIL+ft7PDusnSpUuZNGkSr7zyCo8//rizwwEc/MCdiHQEJgHewHRjzNgb\n1hcBvgYCsSatj4wxs7Lapz5wp5S6E+cuJ/POD7uoUqogQ9tXd3Y4WTp69CgNGzYkODiY9evX4++f\nc/0ld/PAncM6s0XEG5gCdAJqAz1FpPYNzV4AdhljGgDtgAki4ueomJRSnsMYw5I/j9N+4lp+3HES\nX2/XHruTlpZGr169SElJYf78+TmaJO6WI289NQcOGGMOAYjIfKAzsCtDGwMUEutg5QDgPJDmwJiU\nUh7gZFwS//fdDn7ec5qGlYoy7qn6VC9TyNlhZemdd97h119/JTIykpCQEGeHcx1HJooKwNEMr48B\nLW5o8xmwFDgBFAKeNsZYbtyRiIQCoeDYUrpKKfdw7nIKmw+f5//+UYv+rSrj7aya4HZavXo1YWFh\n9O/fn169ejk7nJs4+1rsYeBPoDzQEPhMRG4qy2iMCTfGNDXGNC1VqlRux6iUygOOnE1g+rpDANSt\nUIT1bzzAwNZVXD5JnD59mt69e1OjRg0+/fRTZ4eTKUdeURwHMo7rqmhbllF/YKyx9qgfEJHDQE1g\nswPjUkq5kbR0CzN/O8yEFfvw8/Gic8MKlCrkT6F8ziviZy+LxULfvn25cOECy5cvp2DBgs4OKVOO\nTBS/AyEiUhlrgugB3HhNFQs8CKwTkTJADeCQA2NSSrmRPX9dYsSiaLYdi6N9rTK890RdShVynU7g\n25kwYQLLly/niy++oH79+s4O55YcliiMMWki8iKwHOvw2JnGmJ0iMsS2firwb2C2iGwHBBhhjDnr\nqJiUUu4jKSWdnuEb8RLh056NeLR+OZco4mevjRs3MmrUKLp27crgwYOdHU6WdOIipVSesveveKqX\nCUBE+O3AWWqVK0zxgnlrVP3Fixdp1KgRAFu3bqVo0aIOP6ZLPkehlFI5KTEljX8v20XHSdeK+LWq\nVjLPJQljDIMGDeLYsWPMmzcvV5LE3dISHkopl/fbgbOM/Daao+eT6HNPEB1crIjfnQgPD2fRokV8\n+OGH3HPPPc4Oxy6aKJRSLm3Cir18uvoAlUsWZEHoPbSoUsLZIWXb9u3bGTp0KA8//HC25r12Fk0U\nSimXZLEYvLyExkHFGNy2Cq+2r04+X9cr4mevhIQEunfvTtGiRfnqq6+cMqVpdmmiUEq5lLOXkxmz\ndCdVSgXwWofq3F+jNPfXcM4UoDnp5ZdfZu/evaxcudJpU5pmV95JaUopt2aM4butx2g/cS0rdp4i\nfx6+erjR3LlzmTlzJqNGjeLBBx90djh3TK8olFJOd+JiEqO/286avWdoHFiUD7vWJ8TFi/jZ68CB\nAwwePJhWrVoxZswYZ4eTLZoolFJOdyExhaiYC7z9WG36tgx2+fpM9kpOTubpp5/G19eXuXPnOn1K\n0+zKm1ErpfK8Q2cus2r3KULbVKVO+SJseONBAvzd6y1p5MiRf09pmpcrX7vX/4pSyuWlpVuIWHeY\nj1ftI5+PF10aVaRUIX+3SxI//PADn3zyCS+//LLLTGmaXe71P6OUcmm7Tlzi9cXb2HH8Eg/XKcO/\nO+etIn72Onr0KM8++yyNGjVi3Lhxzg7nrmmiUErliqSUdHpP34i3lxdf9G5Mp3rlnB2SQ6SlpdG7\nd29SUlJYsGCBS01pml2aKJRSDrX75CVqli1Efj9vpvRuTO1yhSlaIG/VZ7oT7777LuvWrWPOnDku\nN6VpdulzFEoph0hITmPM0p08Mnkd3/5hLeJ3b9WSbp0k1qxZw3vvvcezzz7LM8884+xwcoxeUSil\ncty6/Wd449vtHLuQRL+WQTxct6yzQ3K4q1OaVq9e3WWnNM0uTRRKqRw1fvkepqw5SJVSBVk4pCXN\ngos7OySHs1gs9OvXj/Pnz/Pjjz8SEBDg7JBylCYKpVSOuFrEr2lwcf7ZDl5+MCRPF/G7ExMnTuSn\nn35iypQpNGjQwNnh5Did4U4pdVdOx1/h7SU7CSkdwGsP1XB2OLlu06ZN3HfffXTu3JmFCxe67HSs\ndzPDnV5RKKWyxRjDoi3HeO8/u0lKTadRoOvP1JbTLl68SI8ePahQoQIREREumyTuliYKpdQdO3Yh\nkTe+3c66/WdpFlyMsV3rU7WUe92Xvx1jDKGhoRw9epR169ZRrFgxZ4fkMJoolFJ37FJSGtHH4ni3\ncx2eaRGEl5sU8bsTERERLFy4kLFjx9KyZUtnh+NQ2kehlLLLwTOXWbXrFIPbVgWsz0kUdLP6TPba\nvn07zZs3p02bNvz44495YrY67aNQSjlMarqF8F8OMenn/RTw86Zrk4qUDPD32CSRkJDA008/TZEi\nRfLclKbZ5Zn/00opu+w4HseIxdHsPHGJR+qV5Z3H61IyIO/XLrobr7zyCnv27GHFihWUKVPG2eHk\nCk0USqlMJaWk02fGJny8vZj6TGM61nXPIn53Yt68ecyYMYNRo0bRvn17Z4eTa7SPQil1nR3H46hT\nvjAiwoaD56hdrjBFCvg6OyynO3DgAI0bN6ZevXqsXbs2z81Wdzd9FO5/c00pZZfLyWm8tWQHj376\n699F/FpWLaFJAuuUpj169MDHx4d58+bluSRxtzRRKKX4397TPPzxL8zZGEP/VsF09IAifvaIjIwk\nODiYfPnysWXLFvr165enpzTNLs9Ki0qpm3z40x6++N9BqpUOYNGQe2kS5L4Pjt2JyMhIQkNDSUxM\n/HtZeHg4TZs2pXfv3k6MLPdpH4VSHirdYvD2EtbuO0PUkfO8+EA1/H08o4jf7RhjKFeuHKdOnbpp\nXVBQEEeOHMn9oO6S9lEopex2+tIVBs+J4pNV+wBoW70U/3qohiYJ4Ny5c3zyySfUq1cv0yQBEBsb\nm8tROZ8mCqU8hDGGb6KO0n7iWv639wxF8msnNVjnkli9ejU9e/akfPnyvPrqqxQsWJDixTOfR0P7\nKJRSbunoeWsRv18PnKV5cHHGdq1HFQ8r4nejkydPMnv2bGbMmMHBgwcpWrQogwcPZuDAgdSvXz/T\nPooCBQoQFhbmxKidQxOFUh4g/koaO07E8e8n6tK7eaBHFvEDSEtLY/ny5URERLBs2TLS09Np164d\n77zzDk8++ST58+f/u+3VDuvRo0cTGxtLYGAgYWFhHteRDQ7uzBaRjsAkwBuYbowZm0mbdsAngC9w\n1hjTNqt9ame2UvbZfyqelbtP8c921QBITEmjgJ9nfjY8cuQIM2fOZObMmRw/fpwyZcrw7LPP8txz\nzxESEuLs8HKFSxYFFBFvYArQATgG/C4iS40xuzK0KQp8DnQ0xsSKSGlHxaOUp0hJszBt7UE+XX2A\ngv7edG9aiZIB/h6XJFJSUliyZAnTp09n5cqVAHTs2JHJkyfz2GOP4eurfTT2cuRvTnPggDHmEICI\nzAc6A7sytOkFfGuMiQUwxpx2YDxKub3oYxd5fVE0e/6K57EG5Xn7sdoeV8Rvz549TJ8+nS+//JKz\nZ89SqVIl3n77bfr37++RHdE5wZGJogJwNMPrY0CLG9pUB3xF5H9AIWCSMearG3ckIqFAKHjmiAOl\n7JGYkkbfmZvx9/Eiom9TOtT2jMqmAImJiSxatIiIiAh+/fVXfHx8ePzxxxk0aBAdOnTA21uH/t4N\nZ1+L+gBNgAeB/MAGEdlojNmXsZExJhwIB2sfRa5HqZQL23E8jtrlClPAz4dpzzShZrnCHjP09c8/\n/yQiIoLIyEji4uIICQnhww8/pF+/fh5TAjw32JUoRORbYAbwozHGYue+jwOVMryuaFuW0THgnDEm\nAUgQkV+ABsA+lFJZir+Syoc/7eHrjbFM6NaArk0q0qJKCWeH5XCXLl1i3rx5REREsGXLFvz9/enW\nrRsDBw6kTZs2iHjmiC5HsveBu8+x9ifsF5GxIlLDjm1+B0JEpLKI+AE9gKU3tFkC3CciPiJSAOut\nqd12xqSUx1qz5zQPffwLczfFMvC+ynSq5z5F/K4W4vPy8iI4OJjIyEiMMaxfv54BAwZQrlw5hgwZ\nQkpKCpMnT+bkyZPMmTOHtm3bapJwkDsaHisiRYCewGis/Q8RwNfGmNRbtH8E69BXb2CmMSZMRIYA\nGGOm2toMB/oDFqxDaD/JKgYdHqs83Qc/7mba2kOElA5g3FP1aRToPkX8MnvIzdfXl1KlSnHixAkC\nAgLo2bMnAwcOpFmzZpoY7sDdDI+1O1GISAngGaAPcAKIBO4D6hlj2mXn4NmhiUJ5ImMMFgPeXsIv\n+84QFXOBF+6v6nb1mYKDg4mJiblpuZ+fH59//jndu3enUKFCTogs73N4ohCR74AawBxgtjHmZIZ1\nUdk9eHZoolCe5q+4K/zf9zuoWbYQwx62565v3uXl5UVm70kigsVib/eoykxuPHA32RizJrMVuZkk\nlPIkxhjm/36U9/+zm5R0Cy2rundH9alTp/Dz8yM5OfmmdTos3rns7cyubXuKGgARKSYi/3RQTEp5\nvKPnE+kVsYk3vt1OnQqFWT60Dc/dV9nZYTnM5s2badKkCRaLBT8/v+vWeWohPldib6IYZIy5ePWF\nMeYCMMgxISmlElLS2PPXJd7vUo+5A+8huGRBZ4fkMDNnzqR169b4+vqyefNmZs6cSVBQECJCUFAQ\n4eHhHlmIz5XY20exHahvbI1tdZyijTF1HBzfTbSPQrmrvX/Fs2r3KV6431rELyklnfx+7tVZnVFK\nSgpDhw7liy++oH379syfP58SJdz79poz5UYfxU/AAhGZZns92LZMKXWXUtIsfP6/A0xZc4BC+Xx5\nupm1iJ87J4mTJ0/y1FNPsX79el5//XXCwsLw8XF2oQh1K/b+z4zAmhyet71eCUx3SERKeZBtR61F\n/Paeiqdzw/K89WhtSrh5Eb8NGzbQtWtX4uLiWLBgAd27d3d2SOo27EoUtrIdX9i+lFI5IDEljX6z\nNpPPx5vpfZvS3gOK+E2bNo2XXnqJSpUqsXz5curVq+fskJQd7K31FAJ8ANQG8l1dboyp4qC4lHJb\n0ccuUrd8EQr4+RDRtyk1yhaicD73LuKXnJzMSy+9REREBB07diQyMvKWc1Ir12PvqKdZWK8m0oD7\nga+Arx0VlFLu6NKVVN74djuPf/Yb32211sdsFlzc7ZPE8ePHadu2LREREYwaNYply5Zpkshj7O2j\nyG+M+VlExBgTA4wRkS3AWw6MTSm3sWrXKUZ/v50z8cmEtqnCI/XKOTukXLFu3Tq6detGQkICixcv\n5sknn3R2SCob7E0UySLihbV67ItYy4UHOC4spdzH+//dTfgvh6hZthDhfZrSoFLR22+Uxxlj+Pzz\nzxk6dCiVK1dm9erV1K5d29lhqWyyN1G8AhQAXgb+jfX2Uz9HBaVUXmeMId1i8PH2onVISQL8fRjS\ntip+Pvbe7c27rly5wvPPP8/s2bN59NFHmTNnDkWLun9ydGe3TRS2h+ueNsYMAy5jLQmulLqFk3FJ\n/N93O6hZrhDDH65J65BStA4p5eywckVsbCxdu3YlKiqKt99+m7feegsvL/dPju7utonCGJMuIvfl\nRjBK5WUWi2He77F88N89pFsMrUNKOjukXPW///2Pbt26kZyczJIlS3j88cedHZLKIfbeetoqIkuB\nhUDC1YXGmG8dEpVSeUzsuUSGL9rGpsPnaVWtBB90qU9giQLODitXGGOYNGkSw4YNIyQkhO+//54a\nNdy7HLqnsTdR5APOAQ9kWGYATRRKAYmpaRw4fZkPu9aje9NKHjPzWmJiIqGhoURGRvLEE0/w5Zdf\nUrhwYWeHpXKYvU9ma7+EUjfY89clVu48xUsPhlCzbGF+G/kA+Xzdtz7TjY4cOUKXLl3Ytm0b7733\nHm+88Yb2R7gpe5/MnoX1CuI6xpgBOR6RUi4uOS2dKasP8Pn/DlIkvy89WwRSMsDfo5LEqlWr6NGj\nB2lpaSxbtoxHHnnE2SEpB7L31tOyDN/nA7pgnTdbKY/yR+wFRiyKZv/pyzzZqAJvPlqbYgX9br+h\nmzDGMGHCBEaMGEGtWrX4/vvvqVatmrPDUg5m762nxRlfi8g84FeHRKSUi0pMSWPA7N8p4OvNrP7N\nuL9GaWeHlKsSEhJ47rnnWLBgAU899RSzZs0iIECfu/UE2S0AHwJ41l+J8lhbYy/QoGJRCvj5MKNf\nU2qULUyAv2fNnXDw4EG6dOnCzp07GTt2LK+//rrHdNgr+/so4rm+j+IvrHNUKOW24pJSef8/u1kQ\ndZQJ3RrQtUlFmgR5XjG7n376iZ49eyIi/Pjjjzz00EPODknlMruGKBhjChljCmf4qn7j7Sil3Mny\nnX/RYeJaFv1xjCFtq/KP+p5RxC8yMpLg4GC8vLwICgqie/fuPPLIIwQGBhIVFaVJwkPZe0XRBVht\njImzvS4KtDPGfO/I4JRyhn8v28WMXw9Tq1xhZvRrRr2KRZwdUq6IjIwkNDSUxMREwFqOIzY2lpYt\nW7Jy5UoKFizo5AiVs9h7o/VtY8x3V18YYy6KyNuAJgrlFjIW8bu/RmmKFfBlcNuq+Hp7znMBo0eP\n/jtJZHT8+HFNEh7O3kSR2V+LZ/XmKbd1/GISo7/bTp3yhRn+cE3uCynJfR5WpykpKYmYmJhM1x09\nejSXo1Guxt6PS1EiMlFEqtq+JgJbHBmYUo5msRjmbDjCQxPXsunQecoUznfbbdzNzp07GTp0KBUq\nVLhlm8DAwFyMSLkie68KXgLeBBZgHf20EnjBUUEp5WhHzibw+qJoNh85T+uQkrzfpR6VintGEb/E\nxEQWLlxIeHg469evx9fXlyeffJIqVaowadKk624/FShQgLCwMCdGq1yBvQ/cJQAjHRyLUrkmOc3C\nobMJjH+qPk81qegRzwRER0cTERHBnDlziIuLo3r16nz00Uf07duXUqWs82XUqVOH0aNHExsbS2Bg\nIGFhYfTu3dvJkStnE2NuKuF0cyORlUA3Y8xF2+tiwHxjzMMOju8mTZs2NVFRUbl9WOUGdp6IY+Wu\nUwxtXx2AK6npbl+fKSEhgQULFhAeHs6mTZvw9/ena9euhIaG0qZNG49IkMpKRLYYY5pmZ1t7bz2V\nvJokAIwxF0REn8xWecKV1HQ+Xb2fqWsPUayAH8/cE+T2Rfy2bt1KREQEX3/9NfHx8dSqVYuPP/6Y\nPn36UKJECWeHp/IYexOFRUQCjTGxACISTCbVZJVyNVtizvP6omgOnkmga+OKvPloLYoWcM8ifvHx\n8cyfP5/U5he/AAAbyklEQVTw8HCioqLIly8f3bt3Z9CgQbRq1UqvHlS22ZsoRgO/ishaQIDWQKjD\nolIqBySmpPHcl1EU9PPhywHNaVvdPeet3rJlC+Hh4cydO5fLly9Tt25dJk+ezDPPPEOxYsWcHZ5y\nA/Z2Zv8kIk2xJoetWB+0S3JkYEpl15aYCzSqdLWIXzNqlC3kdkX8Ll26xNy5cwkPD2fr1q3kz5+f\nHj16EBoaSosWLfTqQeUou56jEJGBwM/Av4BhwBxgjB3bdRSRvSJyQERuOWpKRJqJSJqIPGVf2Erd\nLC4xleELt9H1i/V8u/U4AE2CirlNkjDGsGnTJgYOHEi5cuV4/vnnsVgsTJkyhZMnTzJz5kzuuece\nTRIqx9n7F/QK0AzYaIy5X0RqAu9ntYGIeANTgA7AMeB3EVlqjNmVSbsPgRV3GrxSV/204yRvLtnJ\n+YQU/tmuKo+6URG/ixcvEhkZSXh4ONHR0RQsWJBevXoRGhpK06ZNNTEoh7P3yewrxpgrACLib4zZ\nA9S4zTbNgQPGmEPGmBRgPtA5k3YvAYuB03bGotR13v1hF0O+/oNSAf4seaEVr3esmedGNGWs2hoc\nHExkZCTr16/n2WefpXz58rz44ov4+voydepUTpw4QUREBM2aNdMkoXKFvVcUx2wVY78HVorIBSDz\nwjDXVAAyFok5BrTI2EBEKmCdVvV+rFcsmRKRUGyd51pOQMH1RfwerFWaEgF+hLapkieL+N1YtTUm\nJoY+ffpgjCEgIIC+ffsyaNAgmjRp4uRIlaeytzO7i+3bMSKyBigC/JQDx/8EGGGMsWT1ycgYEw6E\ng/WBuxw4rsrDjp5PZNR326lboQgjOtakVbWStKqWd4v4ZVa11RhD8eLFiYmJ0elGldPdcS+fMWat\nnU2PA5UyvK5oW5ZRU2C+LUmUBB4RkTSd50JlxmIxfLXhCOOW70WAh+uUdXZId8UYw7p1625ZtfXC\nhQuaJJRLcORwkN+BEBGpjDVB9AB6ZWxgjKl89XsRmQ0s0yShMnP4bALDF24jKuYCbauXIqxLXSoW\ny5tF/NLT0/n+++8ZN24cmzdvxsvLC4vFclM7vc2qXIXDEoUxJk1EXgSWA97ATGPMThEZYls/1VHH\nVu4nNd1CzPlEJnZvQJdGFfJkJ25SUhJffvklEyZM4MCBA1StWpXPP/+cfPny8eKLL2rVVuW6jDF5\n6qtJkyZGeYbtxy6aiSv2/v36SmqaE6PJvrNnz5p33nnHlCpVygCmefPmZuHChSYt7drP8/XXX5ug\noCAjIiYoKMh8/fXXToxYuSMgymTzfdeu6rGuRKvHur8rqelM+nk/4b8conhBP356pTUlAvydHdYd\nO3z4MBMnTmTGjBkkJSXxj3/8g9dff53WrVvnySsilbflRvVYpXLF70fOM2JRNIfOJtCtSUX+7x+1\nKVLA19lh3ZEtW7Ywfvx4Fi5ciLe3N71792bYsGHUqVPH2aEplS2aKJTLSEhOY9BXUQT4+zDnuea0\nDsk7RfyMMSxfvpxx48axZs0aChcuzLBhw3j55ZeznGZUqbxAE4Vyut+PnKdJYDEK+vsw89lm1ChT\niIJ5pD5Tamoq8+fPZ/z48Wzfvp0KFSowfvx4QkNDKVy4sLPDUypH5L3HWJXbuJCQwmsL/qTb1A1/\nF/FrbEsYru7SpUtMmDCBKlWq0LdvXywWC7Nnz+bQoUMMGzZMk4RyK67/F6ncjjGG/27/i7eX7uBi\nYiovP1CNxxrkjSJ+J06cYPLkyUydOpW4uDjatWvHtGnT6NSpk3ZQK7eliULluneX7WLWb0eoV6EI\nXw1oQe3yrv/pe/fu3Xz00UfMmTOH9PR0unbtyvDhw2nW7JYlypRyG5ooVK4wxpBmMfh6e9GhVhnK\nFM7HwPsq4+PCRfyMMfz666+MHz+eH374gfz58xMaGsqrr75K1apVnR2eUrnGdf9Klds4ej6RPjM2\nM2HFPgDurVaSIW2rukSSyKy8d3p6Ot9++y0tW7akTZs2bNiwgTFjxhAbG8tnn32mSUJ5HL2iUA6T\nbjF8uf4I45fvxdtLeKSea/VDZFbee8CAAbz22mucPn2aKlWqMGXKFJ599lkKFMibdaWUygmaKJRD\nHDpzmWELt/FH7EXa1SjF+13qUb5ofmeHdZ3MynunpKRw8eJFvvnmG5588km8vfPWBEhKOYImCuUQ\n6RbD8YtJfPJ0Qzo3LO+SI4JiY2MzXZ6amkq3bt1yORqlXJfzbxIrtxF97CITVuwFIKRMIX55/X6e\ncMFKr3v37mXgwIHcqs6ZlvdW6nqaKNRdu5Kazgf/3c0TU37jm6ijnLucDIC/j2vdttmyZQtPPfUU\ntWrVIjIykg4dOpA///W3w7S8t1I300Sh7srGQ+fo+MkvTPvlEE83q8SKV9u6VKVXYwyrV6+mQ4cO\nNG3alFWrVvHGG28QExPDihUriIiIICgoCBEhKCiI8PBwevfu7eywlXIpWmZcZVtCchqtPlxN4Xy+\njH2yHve60LzVFouFJUuWMHbsWDZv3kzZsmV59dVXGTJkiJbXUB5Jy4yrXLX58HmaBllrMs3u35zq\nZQIo4Ocav0opKSnMnTuXDz/8kD179lClShWmTp1Kv379yJcvn7PDUypP0ltPym7nE1IYOn8r3add\nK+LXsFJRl0gSCQkJTJo0iWrVqtG/f3/8/f2ZN28ee/fuZfDgwZoklLoLzv8LVy7PGMOy6JOMWbqT\nuKRUXnkwxGWK+J0/f57PPvuMyZMnc+7cOdq0acO0adPo2LGjy422Uiqv0kShbuudH3Yxe/0RGlQs\nQuSgFtQs6/x7/MePH2fixIlMmzaNhIQEHnvsMUaOHMm9997r7NCUcjuaKFSmjDGkphv8fLx4qE4Z\nKhTNz4D7KuPt5dxP6fv27WPcuHF89dVXWCwWevbsyYgRI6hbt65T41LKnWmiUDeJOZfAyMXbqV+x\nCG88Uot7q5bk3qrOHdG0ZcsWxo4dy+LFi/H39yc0NJRhw4YRHBzs1LiU8gSaKNTf0i2GWb8d5qMV\ne/H18uKJRuWdGo8xhjVr1jB27FhWrlxJkSJFGDVqFC+//DKlS5d2amxKeRJNFAqAA6cv86+F29h2\n9CLta5XmvSfqUbaIc0YKZfYMxLhx4xg8eLA+A6GUE2iiUID10/vpS1eY3LMRj9UvlysjhiIjIxk9\nejSxsbEEBgbyzjvvYIz5+xmIqlWrMm3aNPr27avDW5VyIn0y24P9efQiK3f9xfCHawKQkmbBzyd3\nHq25cS4IABHBGEODBg1444036Nq1Kz4++llGqZygT2arO5KUks7ElXuZ8ethShfKx4BWlSkR4J9r\nSQIynwvCGEPp0qXZunWrPgOhlAvRROFh1h88y8jF24k9n0ivFoGM7FSTwvl8c+34KSkpLF26lJiY\nmEzXnzlzRpOEUi5GE4UHSUhO44XIPyic35d5g+6hZdUSuXbs/fv3M336dGbPns3p06fx9vYmPT39\npnY6F4RSrkcThQfYcPAcLSoXz1DErxD5/Rw/V0RycjLfffcd4eHhrFmzBm9vbx5//HEGDRrE2bNn\nGTJkyHW3n3QuCKVckyYKN3bucjJjftjFD9tOMKFbA7o2qUiDSkUdftw9e/YQERHBl19+yblz56hc\nuTJhYWH079+fcuWu1Yjy8vK6btRTWFiYzgWhlAvSUU9uyBjD0m0nGLN0JwnJ6bz0QDUGt63q0M7q\npKQkFi1aREREBOvWrcPHx4cuXbowaNAgHnzwQby8tFCxUs6ko57Udd5eupOvNsTQKLAo47rWJ6RM\nIYcda8eOHYSHhzNnzhwuXrxItWrVGDduHP369dOnp5VyE5oo3ITFYkizWIv4dapbjqASBXn23mCH\nFPFLSEjgm2++ITw8nI0bN+Ln50fXrl0JDQ2lbdu2OmpJKTfj0PsBItJRRPaKyAERGZnJ+t4iEi0i\n20VkvYg0cGQ87urw2QR6RmzkoxV7AWhZtQTPOaDS659//sk///lPypcvz4ABA7h48SITJ07k+PHj\nzJ07l3bt2mmSUMoNOeyKQkS8gSlAB+AY8LuILDXG7MrQ7DDQ1hhzQUQ6AeFAC0fF5G7S0i3M/O0w\nE1bsw8/Hi66NK+b4MeLj45k/fz7h4eFERUWRL18+unXrRmhoKK1atdLEoJQHcOStp+bAAWPMIQAR\nmQ90Bv5OFMaY9RnabwRy/p3OTR04Hc9r32wj+lgcHWqX4b0n6lKmcM7UQzLGEBUVRUREBHPnziUh\nIYG6desyefJknnnmGYoVK5Yjx1FK5Q2OvPVUATia4fUx27JbeQ74MbMVIhIqIlEiEnXmzJkcDDFv\nOxufzGe9GhHep8kdJYnIyEiCg4Px8vIiODiYyMhIAOLi4vjiiy9o3LgxzZs3JzIyku7du7Nhwwai\no6N56aWXNEko5YEcNjxWRJ4COhpjBtpe9wFaGGNezKTt/cDnwH3GmHNZ7deTh8f+EXuBlbtOMaKj\ntYhfaroFX+87y/WZFePz9/enRYsWREVFkZiYSMOGDQkNDaVXr14UKVIkR38GpZRzuOrw2ONApQyv\nK9qWXUdE6gPTgU63SxKeKjEljY+W72PW+sOUK5yPgfdZi/jdaZKAzIvxJScns27dOgYOHEhoaChN\nmjTRvgel1N8cmSh+B0JEpDLWBNED6JWxgYgEAt8CfYwx+xwYS5716/6zjPw2mmMXkujbMojXO9Yk\nwD/7/22xsbG3XBceHp7t/Sql3JfDEoUxJk1EXgSWA97ATGPMThEZYls/FXgLKAF8bvsEm5bdSyN3\nlJCcxkvz/qBoAT++GdyS5pWLZ3tff/31FxMmTLjlei3Gp5S6FS3h4YLWHzhLiyol8PYSth+LI6RM\nAPl8s1fELyYmhnHjxjFjxgxSU1Np0aIFW7du5cqVK3+3KVCgAOHh4VpnSSk3djd9FFqAx4WciU/m\nhcg/6DV9E99ttXbn1KtYJFtJYt++fQwYMIBq1aoRERFBnz592Lt3L+vXr2f69OkEBQUhIgQFBWmS\nUEplSa8oXIAxhu+2HufdZbtITE7nlfYhhLapkq3O6ujoaN5//30WLlyIn58fgwYNYvjw4VSqVOn2\nGyul3JarjnpSdnpzyQ6+3hhL48CijHuqPtVK33kRv02bNhEWFsYPP/xAQEAAw4cP59VXX6VMmTIO\niFgp5Uk0UTiJxWJItVjw9/Hm0frlqVYqgD4t76yInzGGtWvXEhYWxqpVqyhWrBjvvPOOPhinlMpR\nmiic4OCZy4xcHE3DSkUZ/Y/a3FOlBPdUsX9aUmMMP/74I2FhYaxfv54yZcowbtw4hgwZQqFCjisp\nrpTyTJooclFquoWIdYf4ZNV+8vl48XSzOxuSarFY+O677wgLC2Pr1q0EBgby2WefMWDAAPLnz++g\nqJVSnk4TRS7ZdyqeVxf8yc4Tl+hYpyzvPlGH0oXsq8+UlpbGvHnz+OCDD9i9ezchISHMmDGDZ555\nBj8/PwdHrpTydJoocomXCBcTU/mid2M61St3+w2wltb48ssvGTt2LIcPH6ZevXrMmzePbt264e2d\nvecqlFLqTmmicKAtMedZsesUb3SqRbXSAawd3g4fO4a8JiQkEBERwUcffcTx48dp1qwZn3zyCY8+\n+qjOPa2UynWaKBwgITmN8cv38uWGI5Qvkp/BbapSvKDfbZNEXFwcU6ZM4eOPP+bs2bO0bduWWbNm\n0b59ey3Sp5RyGk0UOeyXfWd449vtnIhLol/LYIY/XIOCNxTxi4yMZPTo0cTGxhIYGMjIkSM5fvw4\nn376KXFxcXTq1InRo0fTqlUrJ/0USil1jSaKHJSQnMbQBX9StIAvCwe3pGnwzUX8bpwPIiYmhuef\nfx6AJ598klGjRtGkSZNcjVsppbKiJTxywLr9Z7i3akm8vYQdx+OoVvrWRfyCg4OJiYm5aXm5cuU4\nceKEo0NVSnkoLQroJKcvXWHInC30mbGZ721F/OpWuHURv3PnzmWaJMBaBlwppVyRJopsMMawMOoo\n7SeuZfXe04zoWJPODcvfsn18fDzvvvsuVapUuWUbnQ9CKeWqtI8iG0Z/v4O5m2JpFlyMsV3rU7VU\nQKbtkpKS+OKLL/jggw84e/YsXbp0oUWLFrz77rvXTUdaoEABwsLCcit8pZS6I5oo7JSxiF/nBuWp\nVbYQvVsE4ZVJEb/U1FRmzZrFu+++y/Hjx+nQoQNhYWE0a9YMgIoVK1436iksLEzng1BKuSztzLbD\ngdPxjFi8nUaVivJ/j9a+ZTuLxcL8+fN56623OHjwIC1btuT999+nXbt2uResUkplQjuzHSQ13cKU\nNQd4ZNKvHDxzmToVCmfazhjDkiVLaNCgAb179yYgIIBly5bx22+/aZJQSuV5euvpFvadimfo/D/Z\ndfIS/6hXjjGP16FUIf+b2v3888+MGjWKzZs3ExISwvz58+nWrZuW2lBKuQ1NFLfg7SXEJ6cy9Zkm\ndKxb9qb1GzduZPTo0axevZpKlSoxffp0+vXrh4+PnlKllHvRj70ZbD58nrD/7AKgaqkA1vyr3U1J\nIjo6ms6dO9OyZUt27NjBpEmT2LdvH88995wmCaWUW9JEAVxOTuPN73fQfdoGftr5F+cTUgCuK+J3\n4MABevfuTcOGDf+efvTgwYO8/PLL5Mtn37wSSimVF3n8R+A1e08z+tvtnLx0hQGtKlPp4lYa16n+\n99DV1157jR07djBz5kz8/f0ZOXIkw4cP1zmplVIew6OHx15OTqPNuDWUKOjHh0/VZ/e6/15XsO8q\nLy8vXnjhBUaNGkXZsjf3VyillKu7m+GxHpcojDGs3XeG1iGl8PYSdp24RNXSBfH38b5lwb4KFSpw\n7NixuwlbKaWcSp+jsNPpS1cYPGcLz876/e8ifrXLF8bfx1rELzY2NtPttKqrUsqTeUQfhbWI3zH+\n/Z9dpKRZeKNT5kX8AgMDM72i0IJ9SilP5hFXFKO+28Hri6OpVa4wPw1tw+C2VTOdljQsLIwCBQpc\nt0wL9imlPJ3bXlGkWwyp6Rby+XrTpVEF6pQvTK/mgZkW8bvqamE+LdinlFLXuGVn9r5T8by+KJom\nQcV4M4sifkop5Sm0M9smJc3C5J/384/J64g5l0D9ikWcHZJSSuV5bnPrac9flxg6/0/2/BXPYw3K\nM+ax2pQIuLmIn1JKqTvjNonC19uLpNR0Ivo2pUPtMs4ORyml3EaevvW08dA53lt2rYjf6n+10ySh\nlFI5zKGJQkQ6isheETkgIiMzWS8iMtm2PlpEGtuz3/grqYz+bjs9wjeyYtepv4v4eWcxokkppVT2\nOOzWk4h4A1OADsAx4HcRWWqM2ZWhWScgxPbVAvjC9u8txV9J5aGPf+HUpSsMvK8y/3qoBvn9vB3z\nQyillHJoH0Vz4IAx5hCAiMwHOgMZE0Vn4CtjHaO7UUSKikg5Y8zJW+306IUkgvL58Hnve2kUqBVc\nlVLK0RyZKCoARzO8PsbNVwuZtakAXJcoRCQUCLW9TF75WrsdK1/L2WDzqJLAWWcH4SL0XFyj5+Ia\nPRfX1Mjuhnli1JMxJhwIBxCRqOw+NOJu9Fxco+fiGj0X1+i5uEZEsl1225Gd2ceBShleV7Qtu9M2\nSimlnMiRieJ3IEREKouIH9ADWHpDm6VAX9vop3uAuKz6J5RSSuU+h916MsakiciLwHLAG5hpjNkp\nIkNs66cC/wUeAQ4AiUB/O3Yd7qCQ8yI9F9foubhGz8U1ei6uyfa5yHNFAZVSSuWuPP1ktlJKKcfT\nRKGUUipLLpsoHFX+Iy+y41z0tp2D7SKyXkQaOCPO3HC7c5GhXTMRSRORp3Izvtxkz7kQkXYi8qeI\n7BSRtbkdY26x42+kiIj8ICLbbOfCnv7QPEdEZorIaRHZcYv12XvfNMa43BfWzu+DQBXAD9gG1L6h\nzSPAj4AA9wCbnB23E8/FvUAx2/edPPlcZGi3GutgiaecHbcTfy+KYq2EEGh7XdrZcTvxXIwCPrR9\nXwo4D/g5O3YHnIs2QGNgxy3WZ+t901WvKP4u/2GMSQGulv/I6O/yH8aYjUBRESmX24HmgtueC2PM\nemPMBdvLjVifR3FH9vxeALwELAZO52Zwucyec9EL+NYYEwtgjHHX82HPuTBAIRERIABrokjL3TAd\nzxjzC9af7Vay9b7pqoniVqU97rSNO7jTn/M5rJ8Y3NFtz4WIVAC6YC0w6c7s+b2oDhQTkf+JyBYR\n6Ztr0eUue87FZ0At4ASwHXjFGGPJnfBcSrbeN/NECQ9lHxG5H2uiuM/ZsTjRJ8AIY4zF+uHRo/kA\nTYAHgfzABhHZaIzZ59ywnOJh4E/gAaAqsFJE1hljLjk3rLzBVROFlv+4xq6fU0TqA9OBTsaYc7kU\nW26z51w0BebbkkRJ4BERSTPGfJ87IeYae87FMeCcMSYBSBCRX4AGgLslCnvORX9grLHeqD8gIoeB\nmsDm3AnRZWTrfdNVbz1p+Y9rbnsuRCQQ+Bbo4+afFm97LowxlY0xwcaYYGAR8E83TBJg39/IEuA+\nEfERkQJYqzfvzuU4c4M95yIW65UVIlIGayXVQ7kapWvI1vumS15RGMeV/8hz7DwXbwElgM9tn6TT\njBtWzLTzXHgEe86FMWa3iPwERAMWYLoxJtNhk3mZnb8X/wZmi8h2rCN+Rhhj3K78uIjMA9oBJUXk\nGPA24At3976pJTyUUkplyVVvPSmllHIRmiiUUkplSROFUkqpLGmiUEoplSVNFEoppbLkksNjlXJF\nIjIe69DC/2ItQpdojPnqhjbBwDJjTN1cD1ApB9FEoZT9QoHixph0ZweiVG7SW0/KI4hIX1v9/W0i\nMkdEgkVktW3Zz7an2xGR2bZ6/etF5NDV+SxEZCnWqqNbRORpERkjIsNs65rY9rsNeCHDMb1FZLyI\n/G47zmDb8na2Qn2LRGSPiETaqppenUdjvW1/m0Wk0K32o1Ru0USh3J6I1AH+D3jAGNMAeAX4FPjS\nGFMfiAQmZ9ikHNbCio8CYwGMMY8DScaYhsaYBTccYhbwkm3fGT2HtURCM6AZMEhEKtvWNQKGArWx\nzqPQylZ+YgHWyqYNgPZA0m32o5TD6a0n5QkeABZeLdlgjDkvIi2BJ23r5wDjMrT/3laCepetLtAt\niUhRoKhtHoCr++pk+/4hoL5cm2WvCBACpACbjTHHbPv4EwgG4oCTxpjfbXFesq2/1X4O39FZUCqb\nNFEodbPkDN/fTa1ywXqlsfy6hSLtbjhGOln/LWa6H6Vyi956Up5gNdBNREoAiEhxYD3WKqMAvYF1\n2dmxMeYicFFErs4B0jvD6uXA8yLiaztudREpmMXu9gLlRKSZrX0hEfHJxn6UylF6RaHcnq2SaBiw\nVkTSga1Yp0udJSLDgTPcXfXh/sBMETHAigzLp2O9pfSHrbP6DPBEFnGmiMjTwKcikh9r/0T7O92P\nUjlNq8cqpZTKkt56UkoplSVNFEoppbKkiUIppVSWNFEopZTKkiYKpZRSWdJEoZRSKkuaKJRSSmXp\n/wEKzT4hyfEHNAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f09f6719748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model_calibration(val_true_targets, val_predictions, n_bins=10)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
